package projectisd.client;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface ProjectServiceAsync  {
	// Listvakken
    void listVakken(AsyncCallback<List <Vak>> callback);
    void addVak(Vak vak, AsyncCallback<Void> callback);
    void removeVak(Vak vak, AsyncCallback<Void> callback);
    void updateVak(Vak vak, AsyncCallback<Void> callback);
    // Listleerlingen
    void listLeerlingen(AsyncCallback<List <Leerling>> callback);
    void addLeerling(Leerling leerling, AsyncCallback<Void> callback);
    void removeLeerling(Leerling leerling, AsyncCallback<Void> callback);
    void updateLeerling(Leerling leerling, AsyncCallback<Void> callback);
    // Listklassen
    void listKlassen(AsyncCallback<List <Klas>> callback);
    void addKlas(Klas klas, AsyncCallback<Void> callback);
    void removeKlas(Klas klas, AsyncCallback<Void> callback);
    void updateKlas(Klas klas, AsyncCallback<Void> callback);
    // Listleraren
    void listLeraren(AsyncCallback<List <Leraar>> callback);
    void addLeraar(Leraar leraar, AsyncCallback<Void> callback);
    void removeLeraar(Leraar leraar, AsyncCallback<Void> callback);
    void updateLeraar(Leraar leraar, AsyncCallback<Void> callback);
    // Listlessen
    void listLessen(AsyncCallback<List<Les>> callback );
    void addLes(Les les, AsyncCallback<Void> callback);
    void removeLes(Les les, AsyncCallback<Void> callback);
    void updateLes(Les les, AsyncCallback<Void> callback);  
    // ListInschrijvenVak
    void listInschrijvenVakken(AsyncCallback<List<InschrijvenVak>> callback );
    void addInschrijvenVak(InschrijvenVak inschrijvenVak, AsyncCallback<Void> callback);
    void removeInschrijvenVak(InschrijvenVak inschrijvenVak, AsyncCallback<Void> callback);
    void updateInschrijvenVak(InschrijvenVak inschrijvenVak, AsyncCallback<Void> callback);
 // ListAfmeldingen
    void listAfmeldingen(AsyncCallback<List<Afmelden>> callback );
    void addAfmelden(Afmelden afmelden, AsyncCallback<Void> callback);
    void removeAfmelden(Afmelden afmelden, AsyncCallback<Void> callback);
    void updateAfmelden(Afmelden afmelden, AsyncCallback<Void> callback);  
}

